﻿using 战斗系统原型;

namespace 转换
{
    internal struct 单元格
    {
        public int 行 = 0;
        public int 列 = 0;

        public 单元格(int 行号, int 列号)
        {
            this.行 = 行号;
            this.列 = 列号;
        }
        public 单元格 偏移单元格(int 行号, int 列号)
        {
            this.行 += 行号;
            this.列 += 列号;
            return this;
        }
        public 单元格 下一行()
        {
            this.行 += 1;
            return this;
        }
        public 单元格 上一行()
        {
            this.行 -= 1;
            return this;
        }
        public 单元格 上一列()
        {
            this.列 -= 1;
            return this;
        }
        public 单元格 下一列()
        {
            this.列 += 1;
            return this;
        }
        public 单元格 复位()
        {
            this.行 = 0;
            this.列 = 0;
            return this;
        }
    }
    public static class 战场数据计算
    {
        public static List<角色> 排除死亡与消失角色(List<角色> 角色表)
        {
            if (角色表.Count == 0) { 显示.日志输出(显示.日志类型.中断, "该队伍无存活角色"); }
            var 输出角色表 = 角色表.FindAll(x => x.角色状态 == 角色.状态.正常);
            foreach (var 角色 in 输出角色表)
            {
                if (角色.角色状态 == 角色.状态.濒死)
                {
                    显示.日志输出(显示.日志类型.中断, "角色排除失败");
                    return new List<角色>();
                }
            }
            return 输出角色表;
        }

        public static void 删除死亡与消失角色(List<角色> 角色表)
        {
            if (角色表.Count == 0) { 显示.日志输出(显示.日志类型.中断, "该队伍无存活角色"); }
            for (int i = 0; i < 角色表.Count; i++)
            {
                if (角色表[i].角色状态 == 角色.状态.濒死 || 角色表[i].角色状态 == 角色.状态.消失)
                {
                    角色表.Remove(角色表[i]);
                }
            }

        }
    }
}
